package io.gitee.thinkbungee.crud.mybatis.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.gitee.thinkbungee.crud.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 使用mybatis的实体
 *
 * @author chenyichang
 * @date 2022/2/14
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SatelliteMybatisEntity extends BaseEntity {

    /**
     * 主键id，类型自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 创建人
     * insert语句时变更
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 创建时间
     * insert语句时变更
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新人
     * insert/update语句时变更
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /**
     * 更新时间
     * insert/update语句时变更
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    /**
     * 版本号
     * 乐观锁，需要使用mybatis-plus插件库optimisticLockerInterceptor
     */
    @TableField(fill = FieldFill.INSERT_UPDATE, update = "%s+1")
    @Version
    private Integer version;
}
